﻿using Authority.DataTransferObject.Subsystem;
using Authority.IServices.Model.Subsystem;
using HelperFromTheSkeleton.Model.PageModel;

namespace Authority.IServices
{
    /// <summary>
    /// 子系统服务
    /// </summary>
    public interface ISubsystemService
    {
        /// <summary>
        /// 新增子系统权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task AddAsync(AddSubsystemModel model);

        /// <summary>
        /// 修改子系统权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task EditAsync(EditSubsystemModel model);

        /// <summary>
        /// 删除子系统权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(Guid id);

        /// <summary>
        /// 获取子系统权限
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<List<SubsystemDTO>> GetAsync(List<Guid> id);

        /// <summary>
        /// 查询共嗯权限
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<(List<SubsystemListDTO>, PageResultModel)> QueryAsync(QuerySubsystemModel model);

        /// <summary>
        /// 获取所有子系统
        /// </summary>
        /// <returns></returns>
        Task<List<SubsystemListDTO>> GetAllSubsystemAsync();
    }
}